package com.ldk.run;

import java.util.List;

/**
 * 负责整个流程的调度
 * @author LDK
 *
 */
public interface Work {
	
	/**
	 * 处理逻辑
	 * 1.获取目标项目下的所有可比对文件			---getAllFile()
	 * 2.根据得到的文件列表进行文件比对			---diff()
	 * 3.构建项目							---build()
	 * 4.附加逻辑
	 * @author LDK
	 * @param targetHead 目标项目
	 * @param instructions 附加指令
	 */
	public void work(String targetHead,List<String> instructions);
	
	/**
	 * 将项目下的所有文件列出
	 * 剔除:
	 * 1.以.开头的文件
	 * 2.classes下的文件
	 */
	public void getAllFile();
	
	/**
	 * 比对文件差异
	 * 单线程操作
	 */
	void diff();
	
	/**
	 * 构建web项目
	 */
	void build();
	
	/**
	 * 生成说明文件
	 */
	void write();
	
	/**
	 * 将更新文件压缩
	 */
	void zipFile();
}
